package com.caigou.service;

import com.caigou.bean.cms.entity.*;
import com.caigou.bean.cms.param.*;
import com.caigou.bean.exam.entity.Users;
import com.caigou.enums.ResponseEnum;
import com.caigou.pojo.ChannelOtherConfigData;
import com.caigou.security.utils.CurrentUser;
import com.caigou.util.Result;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

public interface GovProListService {

    Result listIntro();
    Result saveIntroGroup(GovProListIntroGroupParam param);
    Result deleteIntroGroup(GovProListIntroGroupParam param);
    Result updateIntroGroup(GovProListIntroGroupParam param);
    List<GovProListIntroGroup> listIntroEntity();

    Result saveIntroItem(GovProListIntroItemParam param);
    Result deleteIntroItem(GovProListIntroItemParam param);
    Result updateIntroItem(GovProListIntroItemParam param);

    Result savePrizeSum(GovProListPrizeSumParam param);
    Result deletePrizeSum(GovProListPrizeSumParam param);
    Result updatePrizeSum(GovProListPrizeSumParam param);
    Result movePrizeSum(GovProListPrizeSumParam param);
    Result listPrizeSum();
    List<GovProListPrizeSum> listPrizeSumEntity();

    Result saveExpert(GovProListExpertParam param);
    Result deleteExpert(GovProListExpertParam param);
    Result updateExpert(GovProListExpertParam param);
    Result moveExpert(GovProListExpertParam param);
    Result listExpert();
    List<GovProListExpert> listExpertEntity();

    Result savePrizeYear(GovProListPrizeYearParam param);
    Result deletePrizeYear(GovProListPrizeYearParam param);
    Result listPrizeYear(GovProListPrizeYearParam param);
    Result updatePrizeYear(GovProListPrizeYearParam param);
    List<GovProListPrizeYear> listPrizeYearByCategory(Integer prizeCategory, Integer limit);

    Result savePrize(GovProListPrizeParam param);
    Result deletePrize(GovProListPrizeParam param);
    Result updatePrize(GovProListPrizeParam param);
    Result movePrize(GovProListPrizeParam param);
    Result listPrize(Integer prizeYearId);
    List<GovProListPrize> listPrizeEntity(Integer prizeYearId);

    Result savePrizeWinner(GovProListPrizeWinnerParam param);
    Result deletePrizeWinner(GovProListPrizeWinnerParam param);
    Result updatePrizeWinner(GovProListPrizeWinnerParam param);
    Result movePrizeWinner(GovProListPrizeWinnerParam param);
    Result listPrizeWinner(Integer prizeId);
    List<GovProListPrizeWinner> listPrizeWinnerEntity(GovProListPrize prize);

    //其他配置
    Result getOtherConfigByChannelValue(String channelValue);
    Result updateOtherConfig(GovProListOtherConfigParam param);
    ChannelOtherConfigData getOtherConfigEntityByChannelValue(String channelValue);

    //生成政采榜频道首页
    String buildHomePage();
    //生成政采榜尾部
    String buildGovFooter();

    //生成政采榜政府端奖项碎片
    String buildGovWinner();
    //生成政采榜企业端奖项碎片
    String buildEnterpriseWinner();

    //政采榜介绍碎片
    String buildIntro();
    //政采榜奖项总榜
    String buildPrizeSum();
    //政采榜评审专家碎片
    String buildExpert();


}
